0501 介绍计算组
计算组介绍
计算组由计算项组成,计算项很像其他编程语言的方法,把一些通用的代码写到方法里,然后调用时传递不同的变量,在dax中这个变量就是度量值。
创建计算组
创建计算组目前已可在2023.10版本的Power BI桌面端中进行(2023.10更新在Power BI桌面端创建计算组),只是功能还不是很完善,推荐使用tabular editor
计算组相关DAX函数
SELECTEDMEASURE - 由计算项的表达式用于引用当前位于上下文中的度量值。 在此示例中,Sales 度量值。
SELECTEDMEASURENAME - 由计算项的表达式用于按名称确定上下文中的度量值。
ISSELECTEDMEASURE - 由计算项的表达式用于确定在度量值列表中指定的上下文中的度量值。
SELECTEDMEASUREFORMATSTRING - 由计算项的表达式用于检索上下文中度量值的格式字符串。
计算组的优势
- 简化复杂的度量定义:计算组允许您将复杂的逻辑封装在一个简单的度量内。例如,如果您有多个产品类别,每个类别都有不同的计算逻辑,使用计算组可以简化这些不同逻辑的管理。这样,您只需创建一个度量,而不是为每个类别创建不同的度量。
- 增强数据模型的灵活性:计算组为您提供了修改和扩展数据模型的更大灵活性。您可以创建动态的、基于不同场景的计算,而无需更改底层数据结构。
- 改善性能:在某些情况下,使用计算组而不是多个单独的度量可以提高查询性能。由于计算组中的计算是基于同一个基础数据集,这可能减少数据处理的重复性,从而提高性能。
- 便于维护和管理:计算组使得维护和管理大量相关度量更加容易。对于需要在多个度量上应用相同或类似逻辑的情况,您可以在计算组中进行一次更改,而这些更改会自动应用到所有相关度量。
- 增强报告的灵活性:使用计算组,您可以在报告层面上进行动态分组和比较,而无需改变基础数据模型。这为报告的创建和修改提供了更高的灵活性。
- 简化用户体验:在前端报告工具(如 Power BI)中,计算组可以提供更清晰和简洁的用户界面。用户可以轻松选择和比较不同的计算组,而无需理解复杂的底层逻辑。
- 提高数据一致性:通过在计算组中集中定义逻辑,可以确保在整个数据模型中应用相同的计算规则,从而增强数据的一致性和准确性。
计算组限制
Analysis Services 表格模型中的计算组 | Microsoft Learn
- 不支持在计算组表上定义的对象级别安全 (OLS) 。 但是,可以在同一模型中的其他表上定义 OLS。 如果计算项引用 OLS 安全对象,则返回一般错误。
- 不支持行级别安全性 (RLS) 。 在同一模型中的表上定义 RLS,但不定义计算组本身 (直接或间接)
- 计算组不支持详细信息行表达式。
- 计算组不支持 Power BI 中的智能叙事视觉对象。
- 具有计算组的模型不支持 Power BI 中的隐式列聚合。 目前,如果 DiscourageImplicitMeasures 属性设置为 false (默认) ,则显示聚合选项,但无法应用它们。 如果 DiscourageImplicitMeasures 设置为 true,则不会显示聚合选项。
- 使用 LiveConnection 创建 Power BI 报表时,动态格式字符串不会应用于报表级度量值。
参考
了解计算组 - Training | Microsoft Learn
Analysis Services 表格模型中的计算组 | Microsoft Learn
Introducing Calculation Groups - SQLBI --- 计算组简介 - SQLBI